﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tencent.OA.App
{
    /// <summary>
    /// 定义一个用于记录日志的接口。
    /// </summary>
    public interface ILogger
    {
        /// <summary>
        /// 向日志中写入一条消息。
        /// </summary>
        /// <param name="message">日志的文本信息。</param>
        void Info(string message);

        /// <summary>
        /// 向日志中写入一条消息。
        /// </summary>
        /// <param name="message">日志的文本信息。</param>
        ///  <param name="message">日志级别。</param>
        void Info(Exception ex);

        /// <summary>
        /// 向日志中写入一条消息，并传递引发该异常的 <see cref="T:System.Exception"/> 对象。
        /// </summary>
        /// <param name="exception">异常。</param>
        void Error(string message);

        /// <summary>
        /// 向日志中写入一条消息，并传递引发该异常的 <see cref="T:System.Exception"/> 对象。
        /// </summary>
        ///  <param name="message">日志级别。</param>
        void Error(Exception exception);
    }

    /// <summary>
    /// 日志级别。
    /// </summary>
    [EnumText(new string[] { "FATAL", "ERROR", "WARN", "INFO", "DEBUG" })]
    public enum LogLevel
    {
        /// <summary>
        /// 严重错误 。
        /// </summary>
        FATAL = 0,
        /// <summary>
        /// 错误日志。
        /// </summary>
        ERROR = 1,
        /// <summary>
        /// 警告信息 。
        /// </summary>
        WARN = 2,
        /// <summary>
        /// 一般信息。
        /// </summary>
        INFO = 3,
        /// <summary>
        /// 调试信息。
        /// </summary>
        DEBUG = 4
    }
}
